访问电脑版页面

导航:老古开发网手机版STM32单片机的SPI

STM32单片机SPI主从通信解析

导读:
关键字:
主从通信,STM32单片机,SPI,

今天讲解“STM32F103 SPI主从通信”,原本计划将这部分内容定在后面(第二阶段)来讲解,满足一位网友的问题“关于两块MCU的SPI通讯”,所以今天特地提前讲解了。

今天提供并讲解的软件工程,基于昨天的软件工程“SPI读写Flash”修改而来。

测试原理及现象:主机间隔500ms发送10个字符(0-9),从机开启SPI中断接收数据,接收满10字节数据,置标志位gSPI_FlagOver有效,并变化LED,通过串口打印接收到的数据。

关于“STM32F103SPI通信从机部分”我把重要的几点在下面分别讲述,若不明白,请关注微信公众号“EmbeddDeveloper”查阅或留言。

一、RCC时钟配置

STM32单片机SPI主从通信解析

该函数位于在bsp.c文件下面;

使能RCC时钟:RCC_APB2Periph_SPI1

二、引脚配置

STM32单片机SPI主从通信解析

该函数位于在spi.c文件下面;

这里是对SPI所使用引脚进行配置。

注意:

SPI作为从机,MOSI作为从机接收而不是MISO,“今天的重点”我还会强调这点。

三、SPI配置

STM32单片机SPI主从通信解析

该函数位于在spi.c文件下面;

对SPI进行配置。

配置的每一条语句都有注释,请看源代码。

强调一点:SPI_CPOL_Low时钟空闲为低,这个引脚容易受干扰导致通信故障。

四、SPI中断控制器配置

STM32单片机SPI主从通信解析

该函数位于在bsp.c文件下面;

因为开启了中断接收数据,这里必须配置中断控制器。

五、SPI中断处理

STM32单片机SPI主从通信解析

该函数位于在stm32f10x_it.c文件下面;

文章开始就说明了:接收满10字节数据,置标志位gSPI_FlagOver有效。该函数就是这个意思。

六、主函数应用

该函数位于在main.c文件下面;

这就是文章开头“测试原理及现象”的描述,就不多说了。

六、今天的重点提示

A.主从连接方式:

这里对于开始学习的朋友来说,有点不理解(因为基本上都知道串口的通信,主机Tx对应从机Rx),还以为“主机的MOSI”连接的是“从机的MISO”,其实这里是和串口的区别之一(当然还有其他,这里不讲解)。具体请看参考手册。

来源:工程师周亮   作者:lhl545545  2019/2/11 10:00:00
栏目: [ STM32单片机的SPI]

相关阅读

STM32单片机SPI主从通信解析

如何采用STM32配置SPI实现同步通信

STM32单片机SPI极性和相位的设置方法

如何采用STM32单片机实现SPI的驱动

STM32单片机SPI总线与FPGA的通信设计

STM32单片机SPI的使用原理解析

stm32f429固件库之SPI读写FLASH

STM32_SPI主从通信

STM32F0(8)SPI初始化